chore: refactor promo activation, update lint rules, and expand test coverage#64
Merged
RandomProgramm3r merged 4 commits intomainfrom Jul 26, 2025
Merged
chore: refactor promo activation, update lint rules, and expand test coverage#64RandomProgramm3r merged 4 commits intomainfrom
RandomProgramm3r merged 4 commits intomainfrom
Conversation
This commit refactors the `PromoActivationService` to simplify its logic and improve readability. Key changes include: - Removed redundant `user_age is None` checks in the age targeting validation, assuming `user_age` is always present. - Streamlined the promo code acquisition process by removing unnecessary conditional branches and `PromoUnavailableError` exceptions. - Eliminated an unreachable `PromoActivationError`, making the code path for activating a promotion more direct.
This commit updates the `ruff.toml` configuration to expand the set of linting rules. The new rules `FIX` and `INT` have been added to the `select` list to improve code quality and catch a broader range of potential issues.
This commit introduces a comprehensive set of tests for the `user` application, significantly improving its test coverage and ensuring the reliability of its components. Key additions include: - **Authentication:** Added tests for `CustomJWTAuthentication` to validate token handling, user type verification, and error scenarios like mismatched token versions or missing user IDs. - **Models:** Created new tests for `UserManager` and `User` model behaviors, including `__str__` representations and superuser creation. Added tests for related models like `PromoLike`, `PromoComment`, and `PromoActivationHistory`. - **Services:** Implemented tests for `PromoActivationService` to cover edge cases in targeting logic and race conditions where a promo might be deleted during activation. - **Anti-Fraud:** Added a test to ensure `AntiFraudService` correctly handles missing cache timeout values. - **Profile Operations:** Expanded tests for the user profile endpoint to cover partial updates (`PATCH`) of email and the `other` data field, including validation against existing emails.
This commit expands the test suite for the `business` application, improving validation and model testing.
Key additions include:
- **Authentication:** Added tests to `InvalidCompanyRegistrationTestCase` and `InvalidCompanyAuthenticationTestCase` to handle cases like missing email on creation and sign-in with an invalid email.
- **Models:** Created `promo_code/business/tests/promocodes/test_models.py` to verify the `__str__` representations for the `Company`, `Promo`, and
`PromoCode` models.
- **Promo Creation:** Added validation tests in `TestPromoCreate` to ensure that `promo_common` is provided for 'COMMON' promos and `promo_unique` is
provided for 'UNIQUE' promos.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
chore: refactor promo activation, update lint rules, and expand test coverage
This commit consolidates four major improvements:
Refactor PromoActivationService
user_age is Nonechecks.PromoActivationError.Update Ruff linting configuration
ruff.tomlruleset by addingFIXandINTto theselectlist for broader code-quality checks.Enhance test coverage for the user application
CustomJWTAuthentication, covering token handling, version mismatches, and missing user IDs.__str__methods onUser,UserManager,PromoLike,PromoComment, andPromoActivationHistory.PromoActivationService, including race conditions and missing targeting logic.AntiFraudServicebehavior when cache timeouts are absent.PATCHupdates of email andotherfields, including duplicate-email checks.Expand test suite for the business application
__str__outputs forCompany,Promo, andPromoCode.promo_commonis required forCOMMONpromos andpromo_uniqueforUNIQUEpromos.